From e8f9e7d4724a12ac0bd370197a62d73deec280f1 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 10 Oct 2014 20:51:54 -0400 Subject: [PATCH] inspector: Small reshuffling Move the scrolled window into GtkInspectorWidgetTree. --- gtk/inspector/prop-list.c | 1 + gtk/inspector/widget-tree.c | 43 ++-- gtk/inspector/widget-tree.h | 7 +- gtk/inspector/widget-tree.ui | 145 +++++++------ gtk/inspector/window.ui | 398 +++++++++++++++++------------------ 5 files changed, 300 insertions(+), 294 deletions(-) diff --git a/gtk/inspector/prop-list.c b/gtk/inspector/prop-list.c index 139977748e..a06993608e 100644 --- a/gtk/inspector/prop-list.c +++ b/gtk/inspector/prop-list.c @@ -30,6 +30,7 @@ #include "widget-tree.h" #include "gtkcelllayout.h" +#include "gtktreeview.h" #include "gtkpopover.h" enum diff --git a/gtk/inspector/widget-tree.c b/gtk/inspector/widget-tree.c index 1f6357545e..67f6bd207a 100644 --- a/gtk/inspector/widget-tree.c +++ b/gtk/inspector/widget-tree.c @@ -39,6 +39,7 @@ #include "gtkmenuitem.h" #include "gtksettings.h" #include "gtktextview.h" +#include "gtktreeview.h" #include "gtktreeselection.h" #include "gtktreestore.h" #include "gtktreemodelsort.h" @@ -65,6 +66,7 @@ enum struct _GtkInspectorWidgetTreePrivate { + GtkTreeView *tree; GtkTreeStore *model; GHashTable *iters; gulong map_hook; @@ -73,7 +75,7 @@ struct _GtkInspectorWidgetTreePrivate static guint widget_tree_signals[LAST_SIGNAL] = { 0 }; -G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorWidgetTree, gtk_inspector_widget_tree, GTK_TYPE_TREE_VIEW) +G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorWidgetTree, gtk_inspector_widget_tree, GTK_TYPE_BOX) static void on_widget_selected (GtkTreeSelection *selection, @@ -198,6 +200,7 @@ gtk_inspector_widget_tree_class_init (GtkInspectorWidgetTreeClass *klass) gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/inspector/widget-tree.ui"); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorWidgetTree, model); + gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorWidgetTree, tree); gtk_widget_class_bind_template_callback (widget_class, on_widget_selected); } @@ -208,7 +211,7 @@ gtk_inspector_widget_tree_get_selected_object (GtkInspectorWidgetTree *wt) GtkTreeSelection *sel; GtkTreeModel *model; - sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (wt)); + sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (wt->priv->tree)); if (gtk_tree_selection_get_selected (sel, &model, &iter)) { @@ -339,20 +342,6 @@ gtk_inspector_widget_tree_append_object (GtkInspectorWidgetTree *wt, g_free (address); - if (GTK_IS_TREE_MODEL_SORT (object)) - { - GObject *child = G_OBJECT (gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (object))); - if (child) - gtk_inspector_widget_tree_append_object (wt, child, &iter, "model"); - } - - if (GTK_IS_TREE_MODEL_FILTER (object)) - { - GObject *child = G_OBJECT (gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (object))); - if (child) - gtk_inspector_widget_tree_append_object (wt, child, &iter, "model"); - } - if (GTK_IS_CONTAINER (object)) { FindAllData data; @@ -368,6 +357,20 @@ gtk_inspector_widget_tree_append_object (GtkInspectorWidgetTree *wt, * children in the GtkContainer sense, but which we still want * to show in the tree right away. */ + if (GTK_IS_TREE_MODEL_SORT (object)) + { + GObject *child = G_OBJECT (gtk_tree_model_sort_get_model (GTK_TREE_MODEL_SORT (object))); + if (child) + gtk_inspector_widget_tree_append_object (wt, child, &iter, "model"); + } + + if (GTK_IS_TREE_MODEL_FILTER (object)) + { + GObject *child = G_OBJECT (gtk_tree_model_filter_get_model (GTK_TREE_MODEL_FILTER (object))); + if (child) + gtk_inspector_widget_tree_append_object (wt, child, &iter, "model"); + } + if (GTK_IS_MENU_ITEM (object)) { GtkWidget *submenu; @@ -524,7 +527,7 @@ gtk_inspector_widget_tree_scan (GtkInspectorWidgetTree *wt, } g_list_free (toplevels); - gtk_tree_view_columns_autosize (GTK_TREE_VIEW (wt)); + gtk_tree_view_columns_autosize (GTK_TREE_VIEW (wt->priv->tree)); } gboolean @@ -558,9 +561,9 @@ gtk_inspector_widget_tree_select_object (GtkInspectorWidgetTree *wt, if (gtk_inspector_widget_tree_find_object (wt, object, &iter)) { GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (wt->priv->model), &iter); - gtk_tree_view_expand_to_path (GTK_TREE_VIEW (wt), path); - gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (wt)), &iter); - gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (wt), path, NULL, FALSE, 0, 0); + gtk_tree_view_expand_to_path (GTK_TREE_VIEW (wt->priv->tree), path); + gtk_tree_selection_select_iter (gtk_tree_view_get_selection (GTK_TREE_VIEW (wt->priv->tree)), &iter); + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (wt->priv->tree), path, NULL, FALSE, 0, 0); } } diff --git a/gtk/inspector/widget-tree.h b/gtk/inspector/widget-tree.h index abe872bdf6..290058416a 100644 --- a/gtk/inspector/widget-tree.h +++ b/gtk/inspector/widget-tree.h @@ -23,7 +23,8 @@ #ifndef _GTK_INSPECTOR_WIDGET_TREE_H_ #define _GTK_INSPECTOR_WIDGET_TREE_H_ -#include +#include +#include #define GTK_TYPE_INSPECTOR_WIDGET_TREE (gtk_inspector_widget_tree_get_type()) #define GTK_INSPECTOR_WIDGET_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_INSPECTOR_WIDGET_TREE, GtkInspectorWidgetTree)) @@ -37,13 +38,13 @@ typedef struct _GtkInspectorWidgetTreePrivate GtkInspectorWidgetTreePrivate; typedef struct _GtkInspectorWidgetTree { - GtkTreeView parent; + GtkBox parent; GtkInspectorWidgetTreePrivate *priv; } GtkInspectorWidgetTree; typedef struct _GtkInspectorWidgetTreeClass { - GtkTreeViewClass parent; + GtkBoxClass parent; void (*widget_changed) (GtkInspectorWidgetTree *tree); } GtkInspectorWidgetTreeClass; diff --git a/gtk/inspector/widget-tree.ui b/gtk/inspector/widget-tree.ui index 74518847a9..0d222aa5af 100644 --- a/gtk/inspector/widget-tree.ui +++ b/gtk/inspector/widget-tree.ui @@ -10,73 +10,90 @@ -